/**
 *
 */
#include "../include/util/SystemUtil.h"

#include <vector>
#include <iostream>
#include <string.h>
#include <stdarg.h>
#include <string>
#include <typeinfo>
#include <stdarg.h>
#include <algorithm>
#include <string>
#include <vector>
#include <sstream>
#include <map>

#include "stdlib/log.hpp"
#include "service/UserService.hpp"
#include "constant/SqlTypeEnum.hpp"
#include "../include/test/lib_acl/log_test.h"
#include "../include/test/lib_acl/cfg_test.h"
#include "../include/test/lib_acl/mysql_test.h"
#include "../include/test/lib_acl/string_test.h"
#include "../include/test/lib_acl/vstring_test.h"
#include "../include/test/lib_acl_cpp/mysql_cpp_test.h"
#include "adlist.h"
#include "dict.h"
#include "sds.h"

using namespace std;

int main() {
	// 允许将错误日志输出至屏幕
	acl::log::stdout_open(true);

	UserService userService;

	userService.checkUserStatus();


//	sql_type_map nummap;
//	std::cout<< nummap.size() << " " << nummap[ SQL_TYPE_INSERT ] << std::endl;
//
//	sql_type_map::iterator it = nummap.begin();
//	for (; it != nummap.end(); it++) {
//		cout << it->first << " " << it->second << endl;
//
//		sql_type uuu = it->first;
//
//		cout << uuu << endl;
//	}

//	mysql_cpp_test(0, NULL);

//	log_test(0, NULL);

//	cfg_test(0, NULL);

//	mysql_test(0, NULL);

//	string_test();

//	vstring_test(0, NULL);











//	dict *dictCreate(dictType *type, void *privDataPtr);
//
//	int dictAdd(dict *d, void *key, void *val);
//
//	dictEntry * dictFind(dict *d, const void *key);
//
//	void dictRelease(dict *d);




//	// redis list测试
//    listIter *iter;
//    listNode *node;
//
//	list* myList = listCreate();
//
//	listAddNodeTail(myList, (void*)"www");
//	listAddNodeTail(myList, (void*)"jjj");
//
//    // 迭代整个链表
//	iter = listGetIterator(myList, AL_START_HEAD);
//    while((node = listNext(iter)) != NULL) {
//        cout << (char*)node->value << "\t";
//    }
//    cout << endl;
//
//	listRotate(myList);
//
//	iter = listGetIterator(myList, AL_START_HEAD);
//    while((node = listNext(iter)) != NULL) {
//    	cout << (char*)node->value << "\t";
//    }
//    cout << endl;
//
//	listReleaseIterator(iter);
//	listRelease(myList);
//
//	// redis sds测试
//	sds sdsStr = sdsnew("hello world");
//
//	cout << sdslen(sdsStr) << endl;
//
//
//	cout << "hello world" << endl;
//
//
//
//
//	// SystemUtil测试
//	cout << "Hello World!" << endl;
//
//	int len = 100;
//	char* buf = new char[len];
//	SystemUtil::systemCmd("pwd", buf, len);
//
//	cout << buf << endl;






//	char* testStr = "hhhh-jjjj*kkk";
//
//	char hhhh[500];
//	strncpy(hhhh, testStr, abs(strstr(testStr, "*") - testStr));
//
//	cout << hhhh << endl;
//
//	try {
//
//		string jsonStr = "{ \"happy\": true, \"pi\": 33333.141, \"name\": \"tony\" }";
//
//
//	//	json jsonObject = "{ \"happy\": true, \"pi\": 3.141 }"_json;
//		json jsonObject = json::parse(jsonStr);
//
//		if (jsonObject.find("name") != jsonObject.end()) {
//			// there is an entry with key "pi"
//			cout << *jsonObject.find("name") << endl;
//		}
//
//		if (jsonObject.find("pi") != jsonObject.end()) {
//			// there is an entry with key "pi"
//			cout << *jsonObject.find("pi") << endl;
//		}
//	} catch (std::exception& e) {
//		cout << e.what() << endl;
//	}


	return 0;
}



